#include <stdio.h>
#define INF 2e9
int v,f;
int max(int a,int b)
{
    return a>b?a:b;
}
void show(int i,int j,int dp[][v+1])
{
    if(i==0&&j>0)
    {
        while(j-->0)
        {
            printf("0");
        }
        return;
    }
    else if(j==0)
        return;
    while(dp[i][j]==dp[i][j-1])
    {
        if(j<=i)
            break;
        printf("0");
        j--;
    }
    printf("%d",i);
    show(i-1,j-1,dp);
}

int main(void) {

    scanf("%d%d",&v,&f);
    int beauty[f+1][v+1];
    int dp[f+1][v+1];
    for(int i=1;i<=f;i++) {
        for (int j = 1; j < v+1; j++) {
            scanf("%d", &beauty[i][j]);
        }
    }
    for(int i=0;i<=f;i++) {
        for (int j = 0; j < v+1; j++) {
            dp[i][j]=0;
        }
    }
    for(int i=1;i<=f;i++)
    {
        for(int j=i;j<=v-f+i;j++)
        {
            if(i==j)
            {
                dp[i][j]=dp[i-1][j-1]+beauty[i][j];
            }
            else
            dp[i][j]=max(dp[i][j-1],dp[i-1][j-1]+beauty[i][j]);
        }
    }

    printf("best = %d\n",dp[f][v]);
    show(f,v,dp);
    return 0;
}
